Power amplifier pre-distortion

ABSTRACT

A power amplifier pre-distorter is formed by a FIR filter structure which includes an individual look-up table for each filter tap, where each look-up table represents a sampled polynomial in a variable representing signal amplitude, and means for selecting, from each filter tap look-up table, a filter coefficient that depends on the amplitude of a corresponding complex signal value to be multiplied by the filter tap. A training method for such a pre-distorter determines (S 1 ) a first estimate of a first look-up table assigned to a first filter tap, assuming a second look-up table assigned to a second filter tap is set to predetermined table values. Thereafter the method determines (S 2 ) a second estimate of the second look-up table, assuming the first look-up table is set to the determined first estimate. If deemed necessary, the method includes the further steps (a) refining (S 3 ) the first estimate refined, assuming the second look-up table is set to the latest determined second estimate, and (b) refining (S 4 ) the second estimate, assuming the first look-up table is set to the latest determined first estimate. Steps (a) and (b) may be repeated (S 5 ) until convergence is reached.

TECHNICAL FIELD

The present invention relates to digital pre-distortion in power amplifiers with memory effects.

BACKGROUND

Power amplifiers are known to add more or less distortion to the signal they are designed to amplify. The reason for this is that a power amplifier has a non-linear input-output signal characteristic. This shows up as a broadened spectrum around the desired amplified, signal, and as an unwanted inband component of the signal. As a counter-measure to decrease the effects of non-linearity, it is known to pre-distort the signal at the input of the amplifier as to give an un-distorted amplified signal at the output of the amplifier. This technique is called pre-distortion. Pre-distortion as implemented today normally uses a look-up table that is used to multiply the signal. The entry into the table is the magnitude of the signal at every time sample.

Memory effects is another problem related to power amplifiers. Memory effects typically show up as a non-symmetrical spectrum around the carrier at the output of a power amplifier. That is, although the carrier (desired signal) spectrum is perfectly symmetrical, the spurious spectrum coming from the distortion may be non-symmetrical with respect to the center of the carrier.

The methods commonly used to handle non-linearity do not in general take into account memory effects of the power amplifier. As the term “memory effects” indicates, there is a dependence not only on the present sample but also on delayed samples of the signal. Thus, a single table approach cannot take care of memory effects, but can only handle non-linearity.

Lei Ding et. al. [1] inspired by work by Kim and Konstantinou [2] have derived a pre-distortion method based on what they call “Memory Polynornials” that very well model memory effects. However, a drawback of this method is that it requires recalculation of the memory polynomials for each new input signal amplitude, which can be computationally costly, especially if many polynomials of high order are used. A further drawback of this method is the computationally costly training procedure used to determine the polynomial coefficients.

SUMMARY

An object of the present invention is to provide a computationally efficient training method for pre-distortion based on memory polynomials.

This object is achieved in accordance with the attached claims.

Briefly, the present invention is based on a FIR filter structure including individual look-up tables for the filter taps, where each look-up table represents a discretized memory polynomial. Assuming two look-up tables, the training method in accordance with the invention is based on the observation that the look-up table that compensates for memory effects typically has much smaller elements than the look-up table that compensates for non-linearities. This makes it possible to easily determine a first approximation of this dominating look-up table by simply neglecting the other table. This approximation can in turn be used to determine a first approximation of the table compensating for the memory. This procedure can then be iterated by using the latest approximation of one table for determining a refined approximation of the other table until convergence is reached. An advantage of this method is that in each step only a single table has to be determined (the other table is assumed to be constant), which is a much simpler process than to determine both tables simultaneously in a single step.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention, together with further objects and advantages thereof, may best be understood by making reference to the following description taken together with the accompanying drawings, in which:

FIG. 1 is a diagram illustrating the non-linear input-output signal characteristic of a power amplifier;

FIG. 2 is a diagram illustrating the spectrum of the signal amplified by a non-linear power amplifier;

FIG. 3 is a diagram illustrating the input-output signal characteristic of a power amplifier pre-distorter for removing the non-linearity in FIG. 1;

FIG. 4 is a diagram illustrating the input-output signal characteristic of a power amplifier provided with pre-distortion;

FIG. 5 is a diagram illustrating the spectrum of the signal amplified by a non-linear power amplifier with memory;

FIG. 6 is a diagram illustrating discretization of polynomials in accordance with the present invention;

FIG. 7 is a block diagram of an exemplary embodiment of a pre-distorter suitable to be trained in accordance with the present invention;

FIG. 8 is a block diagram of an exemplary embodiment of a base station including a power amplifier provided with a pre-distorter in accordance with FIG. 7; and

FIG. 9 is a flow chart illustrating an exemplary embodiment of the training method in accordance with the present invention.

DETAILED DESCRIPTION

In the following description the same reference designations will be used for the same or similar elements throughout the figures of the drawings.

Before the invention is described in detail, a brief description of the underlying problem will be given below.

FIG. 1 illustrates the non-linear input-output signal characteristic of a power amplifier. At low input signal amplitudes the amplifier is almost linear, but at higher amplitudes it becomes more and more non-linear until it is saturated. This non-linearity shows up as a broadened spectrum around the desired amplified signal (and as an unwanted inband component of the signal), as illustrated in FIG. 2. As a counter-measure to decrease the effects of non-linearity, it is known to pre-distort the signal at the input of the amplifier to give an un-distorted amplified signal at the output of the amplifier. This technique is called pre-distortion and is illustrated in FIG. 3. The input-output signal characteristic for a pre-distorted power amplifier is essentially linear up to saturation, as illustrated in FIG. 4.

Memory effects is another problem related to power amplifiers. Memory effects typically show up as a non-symmetrical spectrum around the carrier at the output of a power amplifier, as illustrated in FIG. 5. That is, although the carrier (desired signal) spectrum is perfectly symmetrical, the spurious spectrum coming from the distortion may be non-symmetrical with respect to the center of the carrier.

There is a theoretical way of designing a pre-distorter that takes care of all memory effects. This is called the Volterra series. The Volterra series is an extension to the well-known Taylor series, which can be used as a pre-distorter for memory-less amplifiers. The Volterra series, however, also takes into account time-delayed terms that may quite accurately model the pre-distortion, and may therefore be used to suppress the distortion spectrum. However, a Volterra series quite rapidly gets large in terms of the number of possible terms in the expansion. For example, a polynomial of degree 5 with a memory depth (maximum delay) of 5 sample units will give rise to at least 500 coefficients.

Since the full Volterra series can not be implemented with reasonable complexity, an approximation based on “Memory Polynomials” has been suggested in [1]. In this approximation the pre-distortion PD(n) may be expressed as: $\begin{matrix} {{P\quad{D(n)}} = {\sum\limits_{k = 1}^{K}{\sum\limits_{q = 0}^{Q}{a_{k\quad q}x\quad\left( {n - q} \right)\quad{{x\quad\left( {n - q} \right)}}^{k - 1}}}}} & (1) \end{matrix}$

Unfortunately this expression is still quite complicated, and a drawback of this prior art method is that the expression has to be evaluated for each new input sample x(n). However, as will be shown below, this expression may be rewritten into a more suitable form for practical implementation. The derivation essentially includes three steps: 1. Separate the double sum into partial sums including only terms with the same delay. This gives: $\begin{matrix} {{P\quad{D(n)}} = {{\sum\limits_{k = 1}^{K}{\sum\limits_{q = 0}^{Q}{a_{k\quad q}x\quad\left( {n - q} \right)\quad{{x\quad\left( {n - q} \right)}}^{k - 1}}}} =}} \\ \begin{matrix} \begin{matrix} {Separate} \\ {delays} \\ {into} \\ {different} \\ {sums} \end{matrix} & \left\{ \begin{matrix} {{= {{\sum\limits_{k = 1}^{K}{a_{k\quad 0}x\quad(n)\quad{{x\quad(n)}}^{k - 1}}} +}}\quad} \\ {{+ {\sum\limits_{k = 1}^{K}{a_{k\quad 1}x\quad\left( {n - 1} \right)\quad{{x\quad\left( {n - 1} \right)}}^{k - 1}}}} +} \\ {\vdots\quad} \\ {+ {\sum\limits_{k = 1}^{K}{a_{kQ}x\quad\left( {n - Q} \right)\quad{{x\quad\left( {n - Q} \right)}}^{k - 1}}}} \end{matrix} \right. \end{matrix} \end{matrix}$ 2. Here it is noted that the delayed signals x(n−q) do not depend on the summation indices k. Thus the partial sums may be factorized into: $\begin{matrix} \begin{matrix} {Factorize} \\ {k\quad{and}\quad q} \\ {dependence} \\ {in} \\ {each} \\ {sum} \end{matrix} & \left\{ \begin{matrix} {{= {{{x(n)}\underset{\underset{T_{0}{({{x{(n)}}})}}{︸}}{\sum\limits_{k = 1}^{K}{a_{k\quad 0}\quad{{x\quad(n)}}^{k - 1}}}} +}}\quad} \\ {{{{+ {x\left( {n - 1} \right)}}\underset{\underset{T_{1}{({{x{({n - 1})}}})}}{︸}}{\sum\limits_{k = 1}^{K}{a_{k\quad 1}\quad{{x\quad\left( {n - 1} \right)}}^{k - 1}}}} +}\quad} \\ {\vdots\quad} \\ {{{+ x}\left( {n - Q} \right)\underset{\underset{T_{Q}{({{x{({n - Q})}}})}}{︸}}{\sum\limits_{k = 1}^{K}{a_{k\quad Q}\quad{{x\quad\left( {n - Q} \right)}}^{k - 1}}}} +} \end{matrix} \right. \end{matrix}$ 3. Identify the polynomials T_(q)(|x(n−q)|) to obtain: $\begin{matrix} {{P\quad{D(n)}} = {\sum\limits_{q = 0}^{Q}{x\quad\left( {n - q} \right)\quad{T_{q}\left( {{x\quad\left( {n - q} \right)}} \right)}}}} & (2) \end{matrix}$

It is noted in (2) that T_(q)(|x(n−q)|) are polynomials in the absolute value of the (complex) variable x(n−q). Thus, by multiplying each delayed complex sample x(n−q) by a polynomial in |x(n−q)| (which has the same delay q) and summing up the products for all delays q, the same end result P(n) as in [3] will be obtained. However, this new approach has the advantage that the polynomials T_(q) may be sampled at appropriate values of |x(n−q)|, as illustrated in FIG. 6, and stored in look-up tables. This will reduce the pre-distorter to a simple FIR filter structure, in which the normally constant filter coefficients are replaced by these look-up tables, as illustrated in FIG. 7. The problem addressed by the present invention is to determine the values of the polynomials T_(q) at the sampling points in FIG. 6.

In the exemplary embodiment of the present invention illustrated in FIG. 7, the complex input signal x(n) is forwarded to an absolute value block 10 and to a multiplier 12. The absolute value signal from block 10 is forwarded to a look-up table LUT0 representing a sampled version of polynomial T₀. The corresponding (generally complex) value from look-up table LUT0 is forwarded to multiplier 12, where it multiplies the input signal sample x(n). Input signal x(n) is also forwarded to a delay block D, where it is delayed one or several sample periods for forming a delayed sample x(n−1). This delayed sample is processed in the same way as the non-delayed sample by an absolute value block 10, a multiplier 12 and a look-up table LUT1. However, look-up table LUT1 now represents a sampled version of polynomial T₁ instead of T₀. As illustrated in FIG. 7, further delays and look-up tables may be included. Finally, the obtained products are added to each other in adders 14 to form the pre-distorted signal PD(n). Look-up tables used in accordance with the present invention make computation in real time much more efficient than the polynomial computation for each sample of the input signal used in [1]. The look-up tables may be updated (by using the training method described below) to keep track of slow changes in the characteristics of the power amplifier.

FIG. 8 is a block diagram of an exemplary embodiment of a base station including a power amplifier provided with a pre-distorter in accordance with the present invention. In FIG. 8 elements that are not necessary for understanding the invention have been omitted. The baseband complex signal x(n) is forwarded to a pre-distorter 30 in accordance with the present invention. The pre-distorted signal y(n) is up-converted to intermediate frequency (IF) in a digital up-converter 32 and converted into an analog signal in a D/A converter 34, which in turn is up-converted to radio frequency (RF) by an analog up-converter 36. The RF signal is forwarded to a power amplifier 38, and the amplified signal is forwarded to an antenna. The amplified RF signal is also forwarded to a feedback down-conversion chain including an analog down-converter 40, an A/D converter 42 and a digital down-converter 44. The down-converted feedback signal z(n) is forwarded to a trainer 46, which also receives the pre-distorted input signal y(n) for determining the look-up tables in pre-distorter 30 in accordance with the mathematical principles described below.

The described look-up table based pre-distorter may be implemented as an FPGA (Field Programmable Gate Array). Another possibility is to use a micro processor or a micro/signal processor combination and corresponding software. The actual computation of the look-up table entries may be done in an off-line manner at a slow update speed, as described below.

The training method performed by trainer 46 in FIG. 8 will now be described in more detail. In order to illustrate the training process, a pre-distorter 30 including two look-up tables T₀ and T₁ (corresponding to LUT0 and LUT1 in FIG. 7, with a one sample delay as an example) will be assumed. With this assumption equation (2) becomes: y(n)=x(n)·T₀(|x(n)|)+x(n−1)·T ₁(|x(n−1)|)  (3)

A training procedure may be implemented by noting that z(n) should be equal to y(n) if the distorting action of the power amplifier is undone, i.e. if the same pre-distortion is applied to z(n). Thus, the following equation may be used as a basis for a training procedure for determining the look-up tables T₀ and T₁: z(n)·T₀(|z(n)|)+z(n−1)·T ₁(|z(n−1)|)=y(n)  (4)

The training procedure is based on measuring a large batch of signal pairs (y(i),z(i)),i=1, . . . , N where N is the number of signal pairs in the batch (depending on the required accuracy, the number of table entries etc, N is typically between 2000 and 50 000). Since the samples in the batch should fulfill equation (4), one obtains a system of equations. Using traditional methods to solve such a system of equations involves approximating the look-up tables by polynomials in |z(n)| and |z(n−1)|, respectively, and solving the resulting approximate equations by the method of least mean squares by solving the so called normal equations [1]. This method, however, involves rather extensive numerical computations, especially since complex numbers and complex matrix inversions are involved in the process.

The present invention suggests a simpler method for determining look-up tables from equation (4). This method is based on the observation that table T₁, which takes care of memory effects, typically has elements that are at least an order of magnitude smaller than the elements of table T₀. Thus, as a first approximation equation (4) may be written as: z(n)·T ₀(|z(n)|)=y(n)  (5)

This equation is much easier to solve. Since equation (5) has the same form as a simple pre-distorter without memory effect compensation, any method used for determining the look-up table of such a pre-distorter may be used to solve it. One such method may, for example, be found by dividing the range of |z(n)| into intervals, and then solve equation (5) for each amplitude level. Since there is a multitude of data for each amplitude level, one might compute the average of all the data belonging to each amplitude level k to obtain a first approximation T₀ ⁽¹⁾ of T₀ in accordance with the formula: $\begin{matrix} {{T_{0}^{(1)}(k)} = {\frac{1}{N_{k}} \cdot {\sum\limits_{i = {\lbrack{index}\rbrack}}^{\quad}\frac{y(i)}{z(i)}}}} & (6) \end{matrix}$ where the vector “[index]” includes the indices of the signal samples in the measured batch that lie in the interval that corresponds to table index k and N_(k) represents the number of components of this vector. A standard search algorithm (not described here) may be used for this purpose. Another method of determining table T₀ from equation (5) is described in [3].

Once the first approximation T₀ ⁽¹⁾ has been found, this approximation may be used in equation (4) to determine a first approximation of T₁. Moving the first term to the right hand side gives: z(n−1)·T₁(|z(n−1)|)=y(n)−z(n)·T₀ ⁽¹⁾(|z(n)|)=w(n−1)  (7)

Since the index name n is arbitrary (it does not matter whether it is called n or n−1), it is noted that equation (7) has the same form as equation (5). This fact may be used to find a first approximation T₁ ⁽¹⁾ of T₁ by using the same method as for T₀. Thus, T₁ ⁽¹⁾ may, for example, be determined as the average: $\begin{matrix} {{T_{1}^{(1)}(k)} = {\frac{1}{N_{k}} \cdot {\sum\limits_{i = {\lbrack{index}\rbrack}}^{\quad}\frac{w(i)}{z(i)}}}} & (8) \end{matrix}$

In a simple form of the invention, the approximations T₀ ⁽¹⁾ and T₁ ⁽¹⁾ may be used directly as the output of the training procedure. However, further refinements may be achieved by repeating the “trick” in equation (7) one or several times. Thus, to obtain a second approximation T₀ ⁽²⁾ of T₀, the first approximation T₁ ⁽¹⁾ of T₁ is inserted into equation (4). Once again an equation having the same form as equation (5) is obtained. This equation may be solved approximately using, for example, the averaging method described above. A second approximation T₁ ⁽²⁾ of T₁ may be obtained in a similar way. This process may be repeated to obtain approximations of higher orders until convergence is reached (i.e. until there are only insignificant changes to the approximations from one iteration to the next). Depending on the required accuracy, convergence is usually obtained after 3-5 iterations. However, if the accuracy requirements are relaxed, acceptable tables may even be obtained after the first or second iteration.

Thus, by solving equation (4) iteratively as described above, the training problem has been reduced to repeatedly solving equations having the same form as equation (5), which is only a single table problem. It is stressed that any method suitable for solving such a single table problem may be used to find the successive approximations of T₀ and T₁.

Equation (4) is valid both for a first time training and for updating the look-up tables. The method described above assumed that the tables had not been determined yet. For this reason T₁ was initially set to 0. However, if the tables are updated, the current table T₁ may be used as an initial guess instead, since it is probably closer to the correct table.

Another variation of the method described above is to reverse the roles of tables T₀ and T₁ by initially setting all elements of table T₀ 1 (instead of setting the elements of T₁ to 0) and determine T₁ ⁽¹⁾ before T₀ ⁽¹⁾. A similar approach for updating the tables uses the current table T₀ as an initial guess instead of the current table T₁.

FIG. 9 is a flow chart illustrating an exemplary embodiment of the training method in accordance with the present invention. Step S1 sets the elements of table T₁ to predetermined values, typically 0 for a first time training and the current T₁ values for an update. Then T₀ is estimated by solving equation (6). Step S2 sets T₀ the determined estimate in equation (4) for obtaining an equation having the same form as equation (5), This equation is solved for an estimate of T₁. If simplicity is more important than accuracy, it is possible to stop here and output the obtained estimates as the final tables. However, preferably a few more iterations (steps S3-S5) are performed. Step S3 sets T₁ to the latest determined estimate of T₁. Then the estimate of T₀ is refined by solving an equation similar to equation (5). Step S4 sets T₀ the latest determined estimate of T₀. Then the estimate of T₁ is refined by solving an equation similar to equation (5). (Another simple embodiment may be obtained by stopping after step S3. This embodiment involves two iterations for T₀, but only one iteration for T₁. This embodiment may, for example, suffice for an update, since a rather good estimate is already available for T₁ in this case.) Step S5 tests whether the tables have converged. This can be done, for example, by summing the absolute values (or squares) of the differences between corresponding elements of the current estimates and the previous estimates and testing whether the obtained sum is smaller than a predetermined threshold. If the tables have converged, the current estimates are provided as the final tables in step S6. If the tables have not converged, steps S3-S5 are repeated. Typically this method is implemented by a micro processor or a micro/signal processor combination and corresponding software.

The outlined iterative method of successively improving table accuracy may be extended to include more tables. For example, a third table, which takes into account memory effects of another time delay, may be included in the same manner as in the two-table solution. The iteration may be outlined as follows: Perform the iteration scheme as outlined above until convergence is reached for tables T₀ and T₁. Then add a third table T₂ corresponding to another time delay and determine an estimate of this table using the equation: z(n−2)·T ₂(|z(n−2)|)=y(n)−z(n)·T ₀(|z(n)|)−z(n−1)·T ₁(|z(n−1)|)=v(n−2) which again has the same form as equation (5). Further iterations may now be performed using estimates of two tables to determine a refined estimate of the third table until convergence is reached. A variation of this scheme is to estimate the third table as soon as the first estimates of the two other tables have been obtained. The described extension gives best results if the third table has elements with significantly smaller magnitudes than the second table.

The merits of this invention are three-fold: Firstly, already implemented single-table algorithms may be used for both the first table and the second memory table (and possibly further tables). Secondly, an iterative method may be used which usually is very attractive to implement in software due to its simple structure. Thirdly, exhausting computations involving inversion of complex-valued matrices and matrix-matrix multiplications as in the method of Least Mean Squares can be avoided entirely. The present disclosure makes it possible to implement multi-table calculations in processors of the same size as used for single-tables. The execution time will only be slightly longer than for a single-table. Usually only a few loops in the iteration scheme will be necessary to obtain the same convergence as the Least-mean Squares algorithm.

It will be understood by those skilled in the art that various modifications and changes may be made to the present invention without departure from the scope thereof, which is defined by the appended claims. 

1. A training method for a power amplifier pre-distorter formed by a FIR filter structure including an individual look-up table for each filter tap, each look-up table representing a discretized polynomial in a variable representing signal amplitude, and means for selecting, from each filter tap look-up table, a filter coefficient that depends on the amplitude of a corresponding complex signal value to be multiplied by the filter tap, said training method including the steps of determining a first estimate of a first look-up table assigned to a first filter tap, assuming a second look-up table assigned to a second filter tap is set to predetermined table values; determining a second estimate of the second look-up table, assuming the first look-up table is set to the determined first estimate.
 2. The method of claim 1, including the further step of refining the first estimate, assuming the second look-up table is set to the latest determined second estimate.
 3. The method of claim 1, including the further steps of (a) refining the first estimate, assuming the second look-up table is set to the latest determined second estimate; (b) refining the second estimate, assuming the first look-up table is set to the latest determined first estimate.
 4. The method of claim 3, including the step of repeating steps (a) and (b) until the first and second estimates have converged.
 5. The method of claim 1, wherein the determining and refining steps involve solving equations having the same algebraic form.
 6. A base station including a power amplifier pre-distorter formed by a FIR filter structure including an individual look-up table for each filter tap, each look-up table representing a discretized polynomial in a variable representing signal amplitude, and means for selecting, from each filter tap look-up table, a filter coefficient that depends on the amplitude of a corresponding complex signal value to be multiplied by the filter tap, wherein said base station further includes a pre-distorter trainer including: means for determining a first estimate of a first look-up table assigned to a first filter tap, assuming a second look-up table assigned to a second filter tap is set to predetermined table values; means for determining a second estimate of the second look-up table, assuming the first look-up table is set to the determined first estimate.
 7. The base station of claim 6, wherein said trainer includes means for refining the first estimate, assuming the second look-up table is set to the latest determined second estimate.
 8. The base station of claim 6, wherein said trainer includes means for (a) refining the first estimate, assuming the second look-up table is set to the latest determined second estimate; (b) refining the second estimate, assuming the first look-up table is set to the latest determined first estimate.
 9. The base station of claim 8, wherein said trainer includes means for repeating steps (a) and (b) until the first and second estimates have converged. 